package xyz.xmh.pattern.structural.adapterpattern;

/**
 * AudioPlayer
 * 实现播放接口的播放实体类（要让他和高级播放器接口适配）<br/>
 * MediaPlayer这个接口只能播放MP3格式的文件
 *
 * @author xuMingHai
 * @since 2021/4/29 星期四 18:38
 */
public class AudioPlayer implements MediaPlayer {

    /**
     * 文件类型
     */
    private static final String MP3 = "mp3";
    private static final String MP4 = "mp4";
    private static final String VLC = "vlc";
    /**
     * 媒体适配器，用他来适配别的类型的音频
     */
    private MediaAdapter mediaAdapter;

    @Override
    public void play(String audioType, String fileName) {
        // 实现得接口可以播放的格式
        if (audioType.equalsIgnoreCase(MP3)) {
            System.out.println("正在播放MP3格式的文件：" + fileName);

            // 适配其他格式的文件
        }
        else if (audioType.equalsIgnoreCase(MP4) || audioType.equalsIgnoreCase(VLC)) {
            mediaAdapter = new MediaAdapter(audioType);
            mediaAdapter.play(audioType, fileName);

            // 未适配，不能播放此类型的文件
        }
        else {
            System.out.println("当前暂不支持" + audioType + "格式的文件！");
        }

    }

}
